package com.nicolas.pattern.responsibilitychain;

/**
 *  Handler（抽象处理者）：它定义了一个处理请求的接口，一般设计为抽象类，
 *  由于不同的具体处理者处理请求的方式不同，因此在其中定义了抽象请求处理方法。
 *  因为每一个处理者的下家还是一个处理者，因此在抽象处理者中定义了一个抽象
 *  处理者类型的对象（如结构图中的successor），作为其对下家的引用。
 *  通过该引用，处理者可以连成一条链。
 * @author nicolas  2017年2月12日 -- 下午4:18:39
 * 审批者类：抽象处理者
 */
public abstract class Approver {
	protected Approver successor; //定义后继对象  
    protected String name; //审批者姓名  
      
    public Approver(String name) {  
        this.name = name;  
    }  

	//设置后继者  
    public void setSuccessor(Approver successor) {   
        this.successor = successor;  
    }  
  
    //抽象请求处理方法  
    public abstract void processRequest(PurchaseRequest request);  
}
